#include <stdio.h>
#include <string.h>

// 说明，实际输出值与编译环境有关
// 字符串以'\0'作为结束标志，strlen函数返回的事字符串中'\0'前面出现的字符个数（不包含'\0'）
// 参数指向的字符串必须要以'\0'结束。
// 注意函数的返回值为size_t,是无符号的。  unsinged 
int main()
{
    const char arr[] = {'a','b','c','d','e','f'};
    printf("%d \n", strlen(arr));       // 随机值  (从arr的首元素开始算)  7
    printf("%d \n", strlen(arr + 0));   // 随机值  (从arr的首元素开始算) 7
    // 报错  传递‘strlen’的第 1 个参数时将整数赋给指针，未作类型转换。需要是个字符串，不能是字符'a'
    // printf("%d \n", strlen(*arr));
    // 同上
    // printf("%d \n", strlen(arr[1])); // 报错,同上
    printf("%d \n", strlen(&arr));   // 随机值 (从arr的首元素开始算) 7
    printf("%d \n", strlen(&arr + 1));  //随机值 -6 (跳过数组arr的长度找 \0) 1
    printf("%d \n", strlen(&arr[0] + 1)); // 随机值-1（从arr的第二个元素b开始算） 6
    return 0;
}
